Serial Attached SCSI (SAS) is a computer bus used to move data to and from computer storage devices such as hard drives and tape drives. SAS depends on a point-to-point serial protocol that replaces the parallel SCSI bus technology that first appeared in the mid 1980s in data centers and workstations, and it uses the standard SCSI command set. A typical SAS system includes one or more “Initiators”, one or more “Targets” and a “Service. Delivery Subsystem.” A Service Delivery Subsystem may include one or more “Expanders.”
An Initiator is a device that originates device-service and task-management requests for processing by a target device and receives responses for the same requests from other target devices. For example, Initiators may be provided as an on-board component on the motherboard (as is the case with many server-oriented motherboards) or as an add-on host bus adaptor.
A Target is a device containing logical units and target ports that receive service (e.g. disk service) and task management requests for processing and sends responses for the same requests to initiator devices. Examples of target devices are hard disks and disk array systems.
A Service Delivery Subsystem is part of an input/output (I/O) system that transmits information between an Initiator and a Target. Typically cables and connectors connecting an Initiator and a Target comprise a Service Delivery Subsystem. Optionally, Expanders or backplanes can be considered a part of the Service Delivery Subsystem.
Expanders are devices that form part of a Service Delivery Subsystem and facilitate communication between SAS devices. Expanders facilitate the connection of one or more Initiators to one or more Targets.
The SAS architecture includes six layers, namely the Physical layer, the Phy layer, the Link layer, the Port layer, the Transport layer and the Application layer. The T10 technical committee of the International Committee for Information Technology Standards (MOTS) and affiliates develop and maintain the SAS protocol and define the architecture of the various layers. See, for example, Information technology—SAS Protocol Layer (SPL), Revision 07, 21 Jul. 2010, American National. Standard for Information Technology, Ref. No. ISO/IEC 14776-261:201X, incorporated herein by reference in its entirety.
Expanders, as noted above, can be used to allow one or more Initiators to communicate with one or more Targets. When a connection request is made by an Initiator for communication with a Target, or by a Target for a communication with an Initiator, one or more Expanders can attempt to provide a pathway between the Initiator and the Target. An Expander implementing SAS protocols as used herein may be alternatively referred to as a “SAS expander.”
An example SAS expander 10 of the prior art includes a switch core 12, a number of SAS expander phys 14 coupled to the switch core 12, and one or more SMP internal ports 16 coupled to the switch core 12. The example prior art SAS expander 10 also includes a microcontroller (μC) 18 and memory 20. Example prior art SAS expander 10 may form a part of an integrated circuit 22, as will be appreciated by those of skill in the art.
The SAS expander phys 14 typically include a link layer 24, a phy layer 26 and a serial transceiver or “physical layer” 28. The SMP internal ports 16 typically each include a link layer 30 and a virtual phy connection 32. As noted by the bidirectional arrows 34, the SAS expander phys 14 each can operate as a connection originator and as a connection receptor.
A known attribute of SAS expanders is that a significant signal propagation delay or “latency” in data transmission is incurred due to the configuration and operation of the expanders. This latency of a Service Delivery Subsystem increases, for example, with the complexity of the subsystem and the number of expanders through which the signal must travel from the Initiator to the Target.
Latencies introduced by the normal operation of SAS expanders can become problematical when interacting with high speed Targets such as solid-state disk drives. In such situations, it may be preferable for a system designer to directly link (e.g. with a cable) an Initiator to a Target, bypassing the SAS expanders in the Service Delivery Subsystem. However, in certain cases, this can increase the design complexity and reduces the flexibility of the Service Delivery Subsystem.
These and other limitations of the prior art will become apparent to those of skill in the art upon a reading of the following descriptions and a study of the several figures of the drawing.